实验9 人口预测与数据拟合(最小二乘法) 您所在的位置:网站首页 中美gdp曲线 预测 实验9 人口预测与数据拟合(最小二乘法)

实验9 人口预测与数据拟合(最小二乘法)

2023-09-16 08:44| 来源: 网络整理| 查看: 265

在这里插入图片描述 在这里插入图片描述 最小二乘法数学原理请参考:多元函数及其微分法 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 这个在前面的三次样条插值部分已经接触过了。只不过在二者侧重有所不同。 数据插值的部分使用三次样条插值重点是:将所有数据进行分块处理,使曲线变得光滑,且可以避免一些龙格的问题。 最小二叉树重点是:对所有数据直接处理,使曲线对所有已知的数据点进行处理,目的只有使曲线与数据的误差更小,但是随着自定义的经验公式的影响,某些情况下可能会误差理论上对测量的数据小但对现实的情形大,更类似于一般的多项式插值。 在这里插入图片描述 分别拟合3次和6次多项式曲线,并分析该组数据的总体发展趋势。

clear;close all;clc; x=0:0.1:1; y=[-0.4471 1.978 3.28 6.16 7.08 7.35 7.66 9.56 9.48 9.3 11.2]; plot(x,y,'k.','markersize',25);% 绘制数据点 p=polyfit(x,y,3);% 针对数据点,计算三次多项式基函数1,x,x^2,x^3的系数 p1=polyfit(x,y,6);% 针对数据点,计算三次多项式基函数1,x,x^2,x^3,x^4,x^5,x^6的系数 t=0:0.01:1.2; s=polyval(p,t);% 计算三次多项式的各个自己给的点 s1=polyval(p1,t);% 计算六次多项式的各个自己给的点 hold on; % 绘制三次、六次多项式曲线 plot(t,s,'m-','linewidth',1);% 三次 plot(t,s1,'r--','linewidth',3);% 六次 grid; legend("实验所给数据点","自己数据三次拟合","自己数据六次拟合");

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

clear;close all;clc; t=1971:1990; N=[8.523 8.718 8.921 9.086 9.242 9.372 9.497 9.626 9.754 9.871 10.007 10.165 10.301 10.436 10.585 10.751 10.93 11.103 11.27 11.433]; plot(t,N,'K.','markersize',20); grid;hold on; n=length(N); a=sum(t(1:n)); b=sum(t(1:n).*t(1:n)); c=sum(log(N(1:n))); d=sum(t(1:n).*log(N(1:n))); A=[n,a;a,b]; B=[c;d]; p=inv(A)*B;%得出系数 x=1971:2010; y=exp(p(1)+p(2)*x);% 代回经验公式并预测 1991-2020年 plot(x,y,'r-','linewidth',2); str="N(t)=e\^("+num2str(p(1))+"+"+num2str(p(2))+"t)"; legend("Data point","Malthus拟合:"+str);

在这里插入图片描述

clear;close all;clc; t=1971:1990; N=[8.523 8.718 8.921 9.086 9.242 9.372 9.497 9.626 9.754 9.871 10.007 10.165 10.301 10.436 10.585 10.751 10.93 11.103 11.27 11.433]; plot(t,N,'K.','markersize',20); grid;hold on; M=N.^(-1)-20^(-1);% 先算M(t)剩余部分与上面Malthus模型一样 n=length(N); a=sum(t(1:n)); b=sum(t(1:n).*t(1:n)); c=sum(log(M(1:n))); d=sum(t(1:n).*log(M(1:n))); A=[n,a;a,b]; B=[c;d]; p=inv(A)*B;%得出系数 x=1971:2010; y=1./(20^(-1)+exp(p(1)+p(2)*x));% 代回经验公式并预测 1991-2020年 plot(x,y,'r-','linewidth',2); str="N(t)=1./[20\^(-1)+e\^("+num2str(p(1))+"+"+num2str(p(2))+"t])"; legend("Data point","Logistic拟合:"+str);

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有